Oracle 12c中SQLPlus操作使用(包含实验二ORACLE SQL*PLUS环境与查询的详细操作解释) 您所在的位置:网站首页 oracle sqlplus连接数据库 Oracle 12c中SQLPlus操作使用(包含实验二ORACLE SQL*PLUS环境与查询的详细操作解释)

Oracle 12c中SQLPlus操作使用(包含实验二ORACLE SQL*PLUS环境与查询的详细操作解释)

2023-08-12 20:21| 来源: 网络整理| 查看: 265

(1)SQL*Plus的启动

继续上述实例 9 的步骤操作

进入sqlplus环境:sqlplus

输入用户名:C##suke

输入口令:suke123

(2)断开数据库连接与重新连接数据库

断开数据库连接:DISCONECT

重新连接数据库:conn 用户名/口令:conn C##suke/suke123

(3)退出SQL*Plus:exit

(4)查看当前用户名

show user;

select user from dual;

(5)查询表job表结构:desc job;

(6) 查询表job表中的数据

select * from job;

select id,code,name from job where id < 2;

(7)列出缓冲区的内容:LIST

(8)change 修正错误

查询命令时候误将code打错成cose:select id,cose,name from job;

补充:第几行出现错误,出入错误行的数字,就可以单独显示出错误行代码。

使用change修正错误代码:change /cose/code;

重新运行:run

(10)input 添加一行查询条件

查询信息:SQL> select id,code,name from job;

突然想排序操作,又不想重新输入全部命令,使用input添加以id列的排序条件:

SQL> input  2  order by id;

(11)append 给上一行结尾添加查询条件

继步骤(10)看完正序后,由于强迫症想看倒叙怎么办?

首先列出缓冲区的内容:list

给上一行结尾添加查询条件:append  desc

注意:append  desc 中间是两个空格,如果你只留一个空格,如下图错误显示

重新运行:run

(12)del 删除最后一行查询条件

继步骤(11)看完倒叙后,由于脑子有病,就想看原始数据怎么办?

首先列出缓冲区的内容:list

删除上一行查询条件:del

重新运行:run

(13) 显示job表中所有的信息:select * from job;

(14)算术运算符的使用

使id+2*3显示:select id+2*3,code,name from job;

(15)连字符的使用

将单位编号和单位名字连接起来:select code || name codename from job;

将单位编号和单位名字中间用 ‘-’ 连接起来,并输出 ‘WORKS IN DEPARTMENT’:

select id,code||'-'||name codename,'work in department' from job;

(16)DISTINCT子句消除重复由于我们这里的数据本身没有重复值,所以我们需要再添加一些重复数据:

INSERT ALL 

INTO job(id,code,name) VALUES(1,'NO2','前端') 

INTO job(id,code,name) VALUES(2,'NO2','后端')

INTO job(id,code,name) VALUES(3,'NO3','物联网')

SELECT 1 FROM dual;

如果列举出job表中所有单位id序号:select id from job;

从上表中可以看出单位id序号之间存在重复,可以用DISTINCT子句来消除重复的:

select distinct id from job;

(17)排序(默认正序)

按单个字段 id 排序:select * from job order by id;

 

按多个字段排序:如按单位序号id升序,按单位名字name降序排序:

方法一:回顾知识点 list 和 append 用法 

方法二:select * from job order by id,name desc;

(19)带条件的查询查询单位序号 id 是 2 的所有单位序号、单位编号、单位名字信息:

SQL> select * from job where id = 2;

从 job 表中查询单位序号大于1的单位名字:

SQL> select id,name from job where id > 1;

复合条件查询:查询单位序号大于 1 并且单位编号是'NO3',或者单位名字是'前端'的所有单位信息:SQL> select * from job where id > 1 and code = 'NO3' or name = '前端';

(20)操作符的应用

BETWEEN 的应用:查询单位序号 id 在 2 到 3 之间的所有单位信息:

SQL> select * from job where id between 2 and 3; 

IN 的应用:查询单位编号code有 'NO2','NO3' 二个之一的所有单位信息:

SQL> select * from job where code in ('NO2','NO3');

LIKE 的应用:

查询名字以 '运' 字开始的所有单位信息:SQL> select * from job where name like '运%';

查询名字只有三个字符的所有单位信息:SQL> select * from job where name like '___';

​​​​​​​

IS NULL的应用:查询没有单位名字 name 的所有单位信息:

先添加没有单位名字的信息:​​​​​​​SQL> INSERT INTO job(id,code) VALUES(1,'NO1');

查询没有单位名字 name 的所有单位信息:​​​​​​​SQL> select * from job where name is null;

(21)单&号替代变量

数字变量输入:

SQL> select * from job where &job_id; 输入 job_id 的值:  id = 2

字符串变量输入:

SQL> select id*10,code,name from job where code = '&job_code'; 输入 job_code 的值:  NO3

(22)数据类型转换

TO_NUMBER 字符串数据转换为数字:SQL> select to_number('33') from dual;

 TO_CHAR 数字数据转换为字符串:SQL> select to_char(2) from job;

TO_CHAR 字符串数据转换为日期数据:

SQL> select to_char(sysdate,'yy-mm-dd hh24:mi:ss') from dual;

​​​​​​​

TO_DATE 字符串数据转换为日期数据:

SQL> select to_date('2005-12-25,13:25:59','yyyy-mm-dd,hh24:mi:ss') from dual;

(23)分组函数的应用

求平均值:SQL> select avg(id) from job;

求最小值:SQL> select min(id) from job where code = 'NO3';

​​​​​​​

求数目:SQL> select count(*) from job where id = 2;

注意:由于我这job单位表不适合下列查询,所以拿别人的图来展示

GROUP BY子句:求每个部门中的平均工资:

HAVING子句:查询人数超过3人的部门中的平均工资:

(24)连接

再次注意:我这job单位表同样不适合下列查询,再次拿别人的图来展示

从EMP和DEPT中查询出职工名字、工作和部门名称:

(25)子查询的应用

再次注意:我这job单位表同样不适合下列查询,再次拿别人的图来展示

从EMP中查询出工资最低的职工: 

从EMP中查询出每个部门工资最低的职工:

​​​​​​​



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有